Unityシェーダープログラミングの教科書2 反射モデル&テクスチャマップ編
https://s-games.booth.pm/items/1032141
土屋司つかさ
from Unityシェーダープログラミングの教科書 ShaderLab言語解説編
続編 https://someiyoshino.info/entry/20180923/1537695226
シェーダープログラミングにおいて自由な質感表現を実現するには、光源から放射された光が、物質の表面上にどのように反射して視点に到達するかを計算する必要があります。このような計算式を「反射モデル」と呼び、フォトリアル/トゥーンレンダリングにかかわらず、すべてのシェーダープログラミングの基礎となっています。
本書では、反射モデルについてもっとも基本となるランバート反射モデルからはじめて、徐々により高度な物に進み、近年のAAAタイトルなどで採用されている物理ベースレンダリング(PBR)について解説します。それぞれの反射モデルについて、Unity上で動作するサンプルコードを用いて説明しています。
また、より精細な描画をするためには、様々な種類のテクスチャマップについての理解が必要です。本書ではUnityにおけるテクスチャマップの仕組みについて解説しています。特に、プリミティブに凹凸表現を与える法線マップ(引用者注:法線マッピング)と、周囲の風景を映り込ませる環境マッピングについては、それぞれ章を分けて詳細に解説します。
目次
第1部 反射モデル
第1章 反射モデルについて
第2章 ランバート反射モデル1(グーローシェーディング)
第3章 ランバート反射モデル2(フォンシェーディング)
第4章 フォンの反射モデル
第5章 ブリン・フォン反射モデル
第2部 物理ベースレンダリング(PBR)
第6章 物理ベースレンダリング(PBR)とはなにか
第7章 光の性質/双方向反射率分布関数(BRDF)
第8章 クック・トランス反射モデル
第9章 サンプルコード
第10章 シュリックのフレネル近似式
第3部 テクスチャマップ
第11章 テクスチャマップとは
第12章 UV座標系とUVマッピング
第13章 ミップマップとミップマップレベル
Mip Map
第14章 テクスチャ型変数宣言
第15章 テクスチャサンプリング関数
第16章 テクスチャマップの追加情報
第17章 法線マップ
normal mapping
第18章 環境マッピング